The full stack, explained the way you actually learn it.
BitSnippets is a library of long-form, code-first tutorials for web and JVM developers — Angular, Spring Boot, MyBatis and PostgreSQL, then a real application built with all four. No 400-word blog posts that stop right before the hard part — every course here goes from hello world all the way to the production edge cases nobody warns you about.
Featured courses
Six complete, long-form series. One running example each, and every configuration knob explained — not just listed.
Modern Angular
Standalone components, signals, the new control-flow syntax and typed
HttpClient — Angular as it is written today.
PostgreSQL for Developers
Schema design, indexes that are actually used, reading EXPLAIN, and the
MVCC and vacuum facts that decide whether production stays up.
Build an Order Management System
All four technologies in one application: domain design, mappers, a secured REST API with a real state machine, and an Angular front end.
Containerisation & Cloud Deployment
Multi-stage images, the whole stack under Compose, a GitHub Actions pipeline, and a Kubernetes rollout you can undo.
What you will find here
Every article is written by someone who has shipped the thing they are writing about.
Persistence & SQL
MyBatis, JDBC internals, connection pooling, transaction semantics and the performance traps that only show up under load.
15 chapters live
Spring ecosystem
Spring Boot auto-configuration, dependency injection edge cases, profiles, security, actuator and testing strategies for real services.
16 chapters live
Build & tooling
Maven and Gradle beyond copy-paste, dependency conflict resolution, reproducible builds and container-friendly packaging.
Planned
Testing
JUnit 5, Testcontainers, Spring test slices, and how to test a data-access layer without mocking your way into false confidence.
Live
Performance
Batching, caching strategies, N+1 detection, JVM flags that matter and profiling techniques you can run in production.
Planned
Architecture patterns
Repository vs. mapper, hexagonal boundaries, DTO strategies and where an abstraction is genuinely worth its cost.
Planned
Code first. Theory only where it pays for itself.
Most framework documentation answers “what can this do?”. Developers actually need “what should I do, and what will bite me?”. Every BitSnippets chapter follows the same shape:
- The problemWhy the feature exists and what it replaces.
- The smallest working exampleComplete, copy-pasteable, no hidden setup.
- The real-world versionError handling, edge cases, configuration.
- The pitfallsWhat breaks in production and how to spot it early.
@Service
public class UserService {
private final UserMapper userMapper;
public UserService(UserMapper userMapper) {
this.userMapper = userMapper;
}
@Transactional(readOnly = true)
public List<User> search(UserQuery query) {
// Dynamic SQL is built in the mapper — the service
// stays free of string concatenation.
return userMapper.search(query);
}
@Transactional
public void deactivate(Long id) {
int updated = userMapper.setActive(id, false);
if (updated == 0) {
throw new UserNotFoundException(id);
}
}
}
Snippets are complete enough to compile. Every one has a copy button.
Ready to stop fighting your framework?
Start with chapter one of either course. Thirty minutes in, you will have working code and a clear mental model of what the framework is doing underneath it.