Taproot's new composer has been fully upgraded to make creating new at:// records easier and faster. It now lives at atproto.at/new and at a shorter URL at.new.

Typing at.new directly into your browser takes you to the Taproot composer page. at.new also comes with a few bells and whistles. You can prefill the URL with parameters to automatically populate the composer.


For example, you can draft a record and share that using the
at.new link.

Create new statusphere status

https://at.new/?collection=xyz.statusphere.status#record=dfl:q1ZSKaksSFWyUqqorNIrLkksKS0uyEgtSoWylXSUoAwrpQ_zl2x_1ND7aGbT-x39SjpKyUWpiSWpKY4lSlZK1dUqefnltbVKtQA

a new bsky post

https://at.new/?collection=app.bsky.feed.post#record=dfl:rZBBasMwEEWvIn69FEpDoTTaZdF9oN0VL2R7HIs4kpDHJEYIeoiesCcpijeBdtndH5g_jzcJFS-BoGFCUM10WlRP1KngJ4YE05WhcfATW3cUffRnYVg5uojvzy_BA4mS9-_iED371o-i9efgJ4pSWGfZGqZu7Y1k-pFYhbkRzczsHSRG444T9AdSqkrOGbVEG6n09oWdUuX8JWdI9KYlLtsJ1nV0hU5oFqY3NpGht0_yNr66Dnq7yxI9GZ4jrZVfotG2QxFUt7sPo3UnSMzRQmNgDpPebFZZ5DrLv6HPuzvoy-O_QO8-Vch1_gE

Or even say hi to Eli on stream.place chat

https://at.new/?collection=place.stream.chat.message#record=dfl:JcxNCsIwEAbQq5SPLksWBRGyc-c1hnSM0fyZDLS25ASuPIFX9AhSPMB7G3p5ZoZG9mRYVSlMQZkriQpcK1nGAOFFoHFm71N3KSl0JCry3H0_7xcG_BUXaExu0tkbPa5hcXdnx3o72gfx6g82Cu2bKUzC02kvt62PaW4N7Qc

These links only prefill the form. The user still has to click Create Record to publish it.

Template variables

It even supports a limited set of template variables right now like {{$now}}, {{$lang}}, {{$did}} and {{$handle}} that get substituted during publish.

You can even attach a custom variable like {{something}} that becomes a text input below the composer for the user to fill in.

It can be used to create a raw user input form, a rating, a poll, etc.

More built-in template variables and input field types are coming soon.

Integrations

There are even more interesting ways we can use at.new.

It can be used as a browser bookmarklet with record types that you create often.
For example, to create a simple public
community.lexicon.bookmarks.bookmark type record, save this in your bookmarks bar and click it on any page you want to bookmark and it automatically takes you to the composer with the site address prefilled.

javascript:void(window.location.href='https://at.new/#record='+encodeURIComponent(JSON.stringify({$type:'community.lexicon.bookmarks.bookmark',subject:location.href,tags:[],createdAt:'{{$now}}'})));
taproot atproto.at composer screen showing prefilled content from a bookmarklet

taproot (atproto.at) screen showing record created from the new composer


at.new is a good way to show someone new to the atmosphere how atproto records look and work. Prefilled at.new links and template variables can also be creatively used with NFC tags and QR codes.

Share draft

at.new share draft button

You can always share the content you composed using the Share draft button and it automatically creates an at.new link that anyone can open with the content prefilled.

An all-new composer

taproot (atproto.at) screen showing the new composer

To create a public at:// record in your PDS, you need three things:

  • collection name / NSID

  • record key

  • record content

The new composer has helpers for all three.

Autocomplete collection + lexicon validation


Collection NSIDs now autocomplete from published lexicons on the network, and also for collections that already exist in your repo.

taproot (atproto.at) composer showing collections auto populating

For valid published lexicons, the composer preloads the required fields defined in the schema. (Powered by lexicon.store)

taproot (atproto.at) composer showing content prefilled based on selected lexicon/ collection nsid

THE schema validator immediately shows what the record is missing and flags incorrect fields.

taproot (atproto.at) composer showing validator based on content

You can also load the schema for that lexicon directly in the same window.

taproot (atproto.at) composer showing schema for the collection type being composed

Sample records on the network

You can also view sample records on the network (if any) for that collection by clicking the "Used by x accounts" link in top-right corner.

taproot (atproto.at) composer showing count of records for the given collection on the network

It takes you to the list repos-by-collection view (powered by microcosm's lightrail), then click on any user to view their records for this collection

taproot (atproto.at) showing who all in the network have a record under a particular collection

taproot (atproto.at) showing the record for a user under a particular collection

Back in the composer, the validator shows a green check mark once you have a valid record for that schema.

taproot (atproto.at) composer showing validation success for the content

Drafts

You can compose a whole record while logged out. Drafts are saved to localstorage on your device, so you can sign in later, load it from the saved drafts and publish it.

Publishing lexicons

You can even publish a new lexicon based on the record already composed in the editor.

taproot (atproto.at) composer showing option to publish a lexicon

taproot (atproto.at) composer showing content loaded to publish a lexicon based on the record composed

This provides a good base template for the lexicon based on the record.
If you need to start off from an already published lexicon, you can also click on
Examples to view all the published lexicons on the network right now and load a copy of it to the composer and have it as a starting point to build your lexicon.

taproot (atproto.at) composer showing examples of all the lexicons on the network
taproot (atproto.at) composer showing option to load a copy of a lexicon to the composer


Adjust the generated content according to what you plan the final lexicon to be.

Also make sure the id is updated to match the domain you control!

taproot (atproto.at) composer showing content in composer to publish a lexicon

Lexicons also require a valid TXT record setup for each unique namespace prefix for other lexicon resolvers to actually validate.

The publishing checks overlay helps validate the DNS records from the same screen.

It suggests what the DNS TXT record should be set to based on the lexicon NSID.

taproot (atproto.at) composer showing guidance on dns txt record to add for the lexicon publish

Update it in your DNS provider and revalidate from the same taproot composer.

Cloudflare screen showing option to add txt record

taproot (atproto.at) composer showing validation on dns txt record created

taproot (atproto.at) composer showing content for lexicon publish

Once everything passes, you can go ahead and publish the lexicon on the network by creating that record. Lexicon.store will also validate it and add it to the lexicon registry.

taproot (atproto.at) showing a published lexicon

Templates

There are a couple of pre-made templates built into the composer right now. Will be adding more default ones, and a way for users to add their own.

taproot (atproto.at) composer showing pre built templates

Helpers, Blobs and Advanced Validators

There are a few options that show up automatically above the composer based on some popular lexicons.
For example, Facets detect links, tags and mentions in the text and build the byte ranges for you. There is an option to attach a blob/media to any record being composed. The advanced section has a few validators that the PDS supports.

You can also validate a record based on a lexicon that isn't fully published on the network by pasting the lexicon's at:// URL in the advanced section.

taproot (atproto.at) composer showing advanced options

at.new is where at:// records get made.