Ask coding questions

← Back to all posts
What languages was Replit coded in?
QuickV

Just thinking...

I would like to say a few words*: Nitwit! Blubber! Oddment! Tweak!

Comment below if you know what I mean by:

I would like to say a few words*: Nitwit! Blubber! Oddment! Tweak!

* Replit requires 5+ words per post

Voters
QuickV
Comments
hotnewtop
RayhanADev

Most people will tell you "NextJS and Golang" but that's not quite the whole story...

Replit includes many different languages for various parts of it's infrastructure.

Replit's frontend includes a NextJS* build output (i.e. most of these pages) coupled with a custom Express server (source: the presence of the X-Powered-By header that is signature of Express servers) so the backend is most likely written in NodeJS.

Also I believe the entire site is Docker-ized (call it a language if you want, I'm not quite sure what to put it as) so it runs in load-balanced containers and such.

There are many APIs on Replit, one of which is the GraphQL API, whose schema is written in the (aptly named) GraphQL Schema Language.

If the Replit team is good (and by far they got things covered well) they probably have some sort of JSON schema for their RESTful API, so that's written in JSON schema.

Furthermore the actual language and execution runtimes can be split into two languages--the protocols used to interact with the API which are written in Google Protocol Buffers (source: the Replit protocol repository) and the actual evaluation server which is Goval, so it is written in Golang.

I would think that is it ~~whew.

Footnotes:

* NextJS is a React Framework. React is a "language" that makes developing interactive websites with JS a whole lot easier.

Edits:
I'm talking with H he says they use an Express server because older versions of NextJS didn't have custom backend support like they do now, and migrating with the current state would be a huge project to undertake.

RoBlockHead

@RayhanADev dang dude you really wrote up an essay

RayhanADev

@RoBlockHead yep :)

can't have all this floating in my head for no reason now can I

QuickV

Most people will tell you "NextJS and Golang" but that's not quite the whole story...

Replit includes many different languages for various parts of it's infrastructure.

Replit's frontend includes a NextJS* build output (i.e. most of these pages) coupled with a custom Express server (source: the presence of the X-Powered-By header that is signature of Express servers) so the backend is most likely written in NodeJS.

Also I believe the entire site is Docker-ized (call it a language if you want, I'm not quite sure what to put it as) so it runs in load-balanced containers and such.

There are many APIs on Replit, one of which is the GraphQL API, whose schema is written in the (aptly named) GraphQL Schema Language.

If the Replit team is good (and by far they got things covered well) they probably have some sort of JSON schema for their RESTful API, so that's written in JSON schema.

Furthermore the actual language and execution runtimes can be split into two languages--the protocols used to interact with the API which are written in Google Protocol Buffers (source: the Replit protocol repository) and the actual evaluation server which is Goval, so it is written in Golang.

I would think that is it ~~whew.

Footnotes:

  • NextJS is a React Framework. React is a "language" that makes developing interactive websites with JS a whole lot easier.

Edits:
I'm talking with H he says they use an Express server because older versions of NextJS didn't have custom backend support like they do now, and migrating with the current state would be a huge project to undertake.

um... k..

You didn't have to write up an entire essay kinda thing lol, but I guess that's what @RayhanADev is :D... A mini dictionary :P
QuickV
QuickV

he did write up an essay. @RoBlockHead

RayhanADev

You didn't have to write up an entire essay kinda thing lol, but I guess that's what @RayhanADev is :D... A mini dictionary :P

@QuickV no I'm just unnaturally obsessed with reverse-engineering Replit to find all sorts of things I shouldn't :). I can actually make some really cool stuff with everything.

QuickV

I can actually make some really cool stuff with everything.

like wat

@RayhanADev

RayhanADev

@QuickV well I started making a CLI tool that interacts with Replit 100% like you would (create, write, edit, delete files; run and stop repls; edit profile data; post, comment, etc.)

You can also make some cool user-specific projects by using ReplAuth and the GraphQL API and such.

QuickV

:O.... kk

@RayhanADev
PixiGem

@RayhanADev yay u cleared my doubt too :)

RayhanADev

@PixiGem yay :D!

QuickV
QuickV

yay :D! @RayhanADev

RayhanADev

@QuickV yay :D!

QuickV

yay :D! @RayhanADev

PixiGem

@QuickV its 11:12am here, can i help :(

QuickV

what time is it there ;-;

Mooping

@RayhanADev Now your text will be in my brain

ch1ck3n

Nitwit

no u

QuickV

no u @ch1ck3n

Coder100

what

Ok then I'll tell you all right

Frontend: NextJS (in other words, react)
Backend (execution, etc): Golang

  • which technically interacts with google vms via docker
  • nix is starting to be used as a new protocol instead of crosis to handle language setups
    - try out rust!
    API: GraphQL (check out https://replit.com/graphql)
QuickV

try out rust!

maybe I will :D

everything else that Coder100 said

kk

@Coder100

Coder100
QuickV
RoBlockHead

The main website of Replit is made using NextJS, while the backend repl system is developed using golang. I’d refer any questions about that sorta stuff to @turbio, one of the replit engineers.

QuickV

The main website of Replit is made using NextJS

Never heard of that language before xD

I'd refer any questions about that sorta stuff to @turbio, one of the replit engineers.

kk

@RoBlockHead

RoBlockHead

@QuickV NextJS is just a javascript react framework for server-side rendering lol

QuickV

k..k...

what's a framework

@RoBlockHead

ruiwenge2

it was coded in Go

QuickV
PixiGem

I guess node ofc

ruiwenge2

@PixiGem it’s Go

PixiGem

@ruiwenge2 lets go! BTW we need proof

ruiwenge2

@PixiGem according to Coder100

PixiGem
QuickV

tell wat @PixiGem

PixiGem

@QuickV idk, me asking coder100 bruh

PixiGem

@QuickV morning for ya?

QuickV

It's 4:21 PM now, but yes it was like 6 or 7 AM when I messaged you. @PixiGem

PixiGem

@QuickV hey im online, its 8:20 am here bruh

QuickV

as of replying to this it is 4:28 PM lol @PixiGem

PixiGem

you read my mind,I was gonna ask the same question

QuickV