Picking a local dev stack before day one
Most first-week frustration on Solana is not account theory — it is three mismatched version numbers. This guide records the stack Pulse FieldBase standardizes on for articles and workshops so your terminal output matches the screenshots you follow.
Start with Anchor unless you have a reason not to
Native Rust programs teach the runtime intimately but slow down your first deploy. Anchor’s account validation macros catch missing signers early. For a first dApp, Anchor’s test harness pays for itself the first time you forget an mut attribute.
Pin versions in writing
Record Solana CLI, Anchor, and Rust toolchain versions in a TEAM_SETUP.md file at the repo root. When someone upgrades casually, tests fail in ways that look like logic bugs. Our tooling orientation session exists largely to align this file across a group.
Local validator vs. devnet
Use solana-test-validator when iterating on instruction logic and running tests dozens of times per hour. Switch to devnet when you need realistic block times or to demo to someone without cloning your machine. Resetting local state is free; devnet airdrops are rate-limited.
Test layout
Keep Anchor’s tests in tests/ and run them with anchor test. Add one integration test that mirrors the exact client call your workshop script will use. That test becomes the acceptance check before you declare day two complete.
Editor and linting
Rust Analyzer with rustfmt on save prevents noisy diffs during pair review. We do not mandate an IDE, but we do recommend enabling clippy warnings for unused accounts — a frequent oversight when copying instruction handlers.
Need hands-on setup? Book the Developer Tooling Orientation or read dev wallet setup next.